pub fn add(left: u64, right: u64) -> u64 {
    left + right
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn it_works() {
        let result = add(2, 2);
        assert_eq!(result, 4);
    }
}
// 库 方法
/**pub fn say_hello1() {
    println!("Hello!");
}

pub fn say_goodbye1() {
    println!("Goodbye!");
} */
// 2 添加到mod中
/**mod greetings1 {
    pub fn say_hello() {
        println!("Hello!");
    }

    pub fn say_goodbye() {
        println!("Goodbye!");
    }
}

//pub use greetings1::*; */

// 3 使用模块文件 如 greetings.rs
mod greetings1;
// 需要提供外界访问的声明，必须写 不使用不然有警告
pub use greetings1::say_hello1;
pub use greetings1::say_goodbye1;
// 如果greetings中有个模块my_module
mod greetings2;
pub use greetings2::my_module;
pub use greetings2::my_module::say_hello2;
pub use greetings2::my_module::say_goodbye2;


// 4 使用模块文件 如 src/greetings/mod.rs
mod greetings;
// 需要提供外界访问的声明，必须写
pub use greetings::say_hello;
pub use greetings::say_goodbye;

// 5 时候模块维护greetings3和my_module模块
mod greetings3;
// 需要提供外界访问的声明，必须写
pub use crate::greetings3::my_module2::a;
pub use crate::greetings3::my_module2::b;

